//微信支付文档：https://pay.weixin.qq.com/wiki/doc/apiv3/index.shtml

//微信JSAPI支付，微信内H5调起支付(JSAPI调起支付API)
export class WxJSAPIPayment {
  pay(payConfig) {
    const { appId, timeStamp, nonceStr, signType, paySign } = payConfig;
    return new Promise((resolve, reject) => {
      try {
        // eslint-disable-next-line no-undef
        WeixinJSBridge.invoke(
          "getBrandWCPayRequest",
          {
            appId, // 公众号id
            timeStamp, // 时间戳，自1970年以来的秒数
            nonceStr, // 随机串
            package: payConfig.package, //订单详情扩展字符串
            signType, // 签名方式
            paySign, // 签名
          },
          (res) => {
            if (res?.err_msg === "get_brand_wcpay_request:ok") {
              resolve();
            } else {
              reject(res);
            }
          }
        );
      } catch (error) {
        reject(error);
      }
    });
  }
}

//微信H5支付（微信客户端外的移动端网页拉起微信客户端进行支付）
export class WxH5Payment {
  pay(payInfoObj) {
    const { payUrl } = payInfoObj;
    return new Promise((resolve, reject) => {
      try {
        // 微信h5支付（外部浏览览器调用支付）
        const { href, protocol } = window.location;
        const currentUrl = href;
        const searchString = "xiaoeknow.com";
        // 非自定义域名
        if (currentUrl.includes(searchString)) {
          window.location.replace(payUrl);
        } else {
          // 自定义域名
          const jumpUrl = `${protocol}//${
            window.APPID
          }.h5.xiaoeknow.com/p/t/free/v1/ecommerce/payment/middle_page?pay_url=${encodeURIComponent(
            payUrl
          )}&to_pay=1`;
          window.location.replace(jumpUrl);
        }
        resolve();
      } catch (error) {
        reject(error);
      }
    });
  }
}

//微信程序支付（预留），文档：https://pay.weixin.qq.com/wiki/doc/apiv3/apis/chapter3_5_4.shtml
export class WxMpPay {
  pay(payInfoObj) {
    console.log(payInfoObj);
    // return new Promise((resolve, reject) => {
    //   wx.requestPayment() {
    //   }
    // });
  }
}
